CMOS image sensors are described in U.S. Pat. No. 5,471,515. Almost all commercial CMOS imagers rely on a rolling shutter to establish the integration time for the captured image. This contrasts with typical CCD systems, in which a full frame shutter is used to capture the image. A rolling shutter establishes staggered integration times for respective rows of the image. Each row has the same integration time, but each row start integration and ends its integration at a different staggered time. Hence, the time of the row integration, or “shutter” is rolling.
FIG. 1 shows a block diagram of a typical CMOS image sensor of this type. The sensor includes an array 150 of photoreceptors which are arranged into rows such as 1, 2 and 3. Each of the photoreceptors include in-pixel switches such as 152 which are controlled by a control circuitry 160. The control circuitry provides control signals to the various pixels. For example, an entire row of pixels such as row 1 may be controlled all at the same time such that the entire row begins integrating and the same time, and ends integrating and is read out also at the same time.
FIG. 2A shows a diagram of the operation of such a rolling shutter. The x axis in FIG. 2a represents time, while the y axis represents different rows. It can be seen that row 1 starts at time 100 and ends at time 102. Similarly, integration within row 2 starts at time 104 which is some time interval t after time 100. Integration of row 2 ends at 106 which is after 102. The integration time for each of these rows is the same, even though the start and time for each of these rows may be different.
In order to do this, the CMOS sensor logic 160 establishes two row pointers called the readout pointer and the shutter pointer. The start of each row readout time is established by the shutter pointer. This causes the specified row to be reset, and then to begin integration. The readout pointer is used to determine which row of pixels will be sampled and output. FIG. 2a shows the shutter pointers as the leftmost dots such as 100, and the readout pointers as the rightmost dots such as 102. For example, the dots that start and end the eighth vertical dotted lines, labeled as 8 in FIG. 1 occur at the same time that row 3 is being read out.
Various conditions may make it desirable to slow the output frame rate of the CMOS image sensor. This may be caused by limits in bandwidth, limits in the ability to compress the video, or low light conditions requiring longer integration times. For example, this scene may change to become more or less complicated and thus take more or less time to compress. Alternatively, battery conditions may necessitate a situation where power needs to be conserved. This may make it desirable to change the system clock.
There are known ways of slowing the output using this rolling shutter.
A first way is to maintain the output data rate, but to add a vertical blanking time to the output data stream. This produces a burst of data at the time of the active rows. During the vertical blanking period, there is a long absence of data, however. In many systems, this may be difficult because the burst data rate will need to be buffered to match the slower data rate at a later point in the system.
A more direct technique of slowing the output data rate is to slow the master clock frequency of the CMOS image sensor to thereby slow the output data rate and the frame rate. This effectively outputs the data at that slower rate. However, this can corrupt the output image frames during the time while the clock change is occurring. The corruption of data occurs because the sensor logic is operating on both the current frame and the next frame simultaneously. Therefore, there is no single instant when a master clock change will not result in either the current frame or the next frame having rows with different integration times. The system therefore compensates, but doing so may require dropping corrupted frames. This can effect the video output during those corrupted frames.
Another method is to request the image sensor to change its output data rate. This has similar problems to those described above.